import {reqGetSearchInfo} from '@/api';
// seach模块的小仓库
const state = {
  // 仓库初始状态
  searchList:{}
};
const mutations = {
  GETSEARCHLIST(state,searchList){
    state.searchList = searchList
  }
};
const action = {
  // 获取search模块数据
  async getSearchList({commit},{params={}}){
    // 当前这个reqGetSearchInfo这个函数在调用获取服务器参数的时候，至少传递一个参数（空对象）
    // params形参：是当用户派发action的时候，第二个参数传递过来的至少是一个空对象
    let result = await reqGetSearchInfo(params)
    if(result.code == 200){
      commit('GETSEARCHLIST',result.data);
    }
  }
};
// 计算属性：在项目中，为了简化仓库的数据而生
// 可以把我们将来在组件当中需要用的数据简化一下【将来数组在获取数据的时候就方便了】
const getters = {
   //计算新的属性:state,当前小仓库的数据
   goodsList(state) {
    // state.searchList.goodsList如果服务器的数据回来了，没问题是一个数组
    // 假如网络不给力/没有网络state.searchList.goodsList应该返回undefined
    return state.searchList.goodsList||[];
  },
  //品牌的数据
  trademarkList(state) {
      return state.searchList.trademarkList;
  },
  //商品属性
  attrsList(state) {
      return state.searchList.attrsList;
  }
};

// 对外暴露store类的一个实例
export default ({
  state,
  mutations,
  action,
  getters
});